package main

import (
	"fmt"

	"github.com/xuri/excelize/v2"
)

func ReadExcelData(filename string, config *Config) ([]map[string]string, error) {
	f, err := excelize.OpenFile(filename)
	if err != nil {
		return nil, err
	}
	defer f.Close()

	var allData []map[string]string // 存储所有工作表的数据

	// 获取工作表列表
	sheetNames := f.GetSheetList()
	if len(sheetNames) == 0 {
		return nil, fmt.Errorf("文件 %s 中没有找到工作表", filename)
	}

	// 遍历每个工作表
	for _, sheet := range sheetNames {
		fmt.Printf("正在读取工作表: %s\n", sheet)

		studentData := make(map[string]string)

		// 按照表头读取数据
		for _, header := range config.Headers {
			cellValue, err := f.GetCellValue(sheet, header.Cell)
			if err != nil {
				return nil, fmt.Errorf("读取单元格 %s 出错: %v", header.Cell, err)
			}
			studentData[header.Name] = cellValue
		}

		allData = append(allData, studentData) // 将工作表数据添加到切片中
	}

	return allData, nil
}
